As more and more Information Technology enabled solutions and services are embracing cloud computing, applications which were traditionally hosted in on-premise and dedicated data-centers are being progressively virtualized. In a virtualized data center (VDC), a single server hosts multiple virtual machines (VMs), each running one or more applications. This brings a fundamental change in application execution. In a traditional, non-virtualized environment, a physical machine (PM) directly runs the application. Whereas in a virtualized environment, the application is run in a virtual machine which in turn is hosted in a physical machine, thereby providing an additional layer of indirection. While virtualization has a great benefit, allocation and management of resources to a VM has a bearing on the application running on it. Business applications typically serve one or more clients with a certain performance SLA. When this business application is moved from a non-virtualized environment to a virtualized one, satisfying its business service-level agreements (SLA) may get impacted. In certain other times, even within a virtualized environment, the workloads move from one virtual machine to another for providing high availability. Hence, workloads can move (either automatically or one time) under two different scenarios: a) Moving an application from physical to virtual infrastructure and b) Migrating application from one virtualized platform to another.
Presently, platform vendors offer a resource management system that offers capabilities to virtualize hardware, improve in hypervisor technology to provide better performance and fault isolation, manage VM life cycle, migrate and collocate VMs. Managing VM life-cycle includes creating a VM having certain capacity, monitor the state of VM, assign more resources to the VM, move the VM from one host to another and shutdown the VM. The above mentioned resource management system takes help of the underlying hypervisor that performs a job in isolating activities performed by processes in one VM from another.
However, none of the present resource management frameworks provide any technique to evaluate performance of SLA parameters if a workload is migrated from a physical environment to a virtualized environment. Similarly, no technique is provided by the present technology for proactive determination of the SLA violation during VM migration from one host to another. Further it does not estimate the extent of possible SLA violation during migration and also the capacity required in the new virtualized infrastructure to meet the SLA. Thus, existing products can detect if the SLA of the workload is violated in its current environment. However, it can't predict whether the workload will violate SLA if it is moved to a different virtualized infrastructure, nor can it estimate the right capacity of the target virtualized infrastructure to meet the SLA. Current approach to evaluate the above mentioned problems is ad-hoc and arrives at the correct capacity estimation of the virtualized infrastructure that can meet the SLA through empirical trial and error method. This trial and error method is time consuming and tends to overestimate the capacity which in turn causes poor utilization of the infrastructure. Also, during live migration, there is always a chance of missing SLA after moving the workload to another infrastructure.